Oracle |
您所在的位置:网站首页 › merge语法 oracle › Oracle |
oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入: 不需要先去判断一下记录是否存在,直接使用merge into merge into 语法: MERGE INTO table_name alias1 USING (table|view|sub_query) alias2 ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = col_val1, col2 = col_val2 WHEN NOT MATCHED THEN INSERT (column_list) VALUES (column_values);具体就是: MERGE INTO T T1 USING (SELECT '1001' AS a,2 AS b FROM dual) T2 ON ( T1.a=T2.a) WHEN MATCHED THEN UPDATE SET T1.b = T2.b WHEN NOT MATCHED THEN INSERT (a,b) VALUES(T2.a,T2.b);简单总结一下: 目标表 T1,是需要更新或者插入的表,T2 是源数据表,使用T2表的数据去更新T1表,条件是,T1的字段“a” 等于 T2的字段“a”, 如果匹配,执行“UPDATE SET T1.b = T2.b” 如果不匹配,执行“INSERT (a,b) VALUES(T2.a,T2.b)” 注意固定写法: 1、useing 后面是括号,内容是源数据表 2、Update 后面不用加表名 3、Inser 后面不用加 “into 表名” 注:在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中T2的记录数 转自:oracle merge into语法 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |